package com.shopping.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shopping.dto.MessageDTO;
import com.shopping.dto.MessageQueryDTO;
import com.shopping.entity.Message;

import java.util.List;

public interface MessageService extends IService<Message> {
    /**
     * 发布留言
     */
    boolean publishMessage(Message message);

    /**
     * 回复留言
     */
    boolean replyMessage(Long messageId, String reply);

    /**
     * 获取所有留言
     */
    List<Message> getAllMessages();

    /**
     * 获取用户的留言
     */
    List<Message> getUserMessages(Long userId);

    /**
     * 管理员获取留言列表（支持筛选）
     */
    Page<Message> getMessageListForAdmin(Integer page, Integer size, String username, String status);

    /**
     * 获取最新留言
     */
    List<Message> getLatestMessages(Integer limit);

    /**
     * 获取留言统计信息
     */
    Object getMessageStatistics();

    Page<MessageDTO> getMessageList(MessageQueryDTO queryDTO);
    MessageDTO getMessageById(Long id);
    MessageDTO createMessage(Message message);
    MessageDTO updateMessage(Long id, Message message);
    void deleteMessage(Long id);
    void toggleMessageStatus(Long id);
}